package com.Lacia.emsserver.pojo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.Instant;

/**
 * @author 万里花
 * @date 2024/5/31 15:58
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class PcsData {

    @JsonFormat(shape = JsonFormat.Shape.NUMBER_INT)
    @JsonProperty("timeStame")
    /** 时间戳 */
    private Instant timestamp;
    /** 当天交流充电电量 */
    @JsonProperty("ac_charge_energy_day")
    private Double acChargeEnergyDay;
    /** 当天交流放电电量 */
    @JsonProperty("ac_discharge_energy_day")
    private Double acDischargeEnergyDay;
    /** 交流侧总充电电量 */
    @JsonProperty("ac_charge_energy_total")
    private Double acChargeEnergyTotal;
    /** 交流侧总放电电量 */
    @JsonProperty("ac_discharge_energy_total")
    private Double acDischargeEnergyTotal;
    /** 环境温度 */
    @JsonProperty("ambient_temp")
    private Double ambientTemp;
    /** 电池均充电压 */
    @JsonProperty("average_charge_voltage")
    private Double averageChargeVoltage;
    /** 充电截止电流 */
    @JsonProperty("charge_cut_current")
    private Double chargeCutCurrent;
    /** 通讯状态（fault故障码4） */
    @JsonProperty("comm_status")
    private Double commStatus;
    /** 逆变器控制模式 */
    @JsonProperty("control_mode")
    private Double controlMode;
    /** 总直流支路: 直流侧总充电电量 */
    @JsonProperty("dc_charge_energy_total")
    private Double dcChargeEnergyTotal;
    /** 直流控制模式 */
    @JsonProperty("dc_control_mode")
    private Double dcControlMode;
    /** 总直流支路: 直流侧总放电电量 */
    @JsonProperty("dc_discharge_energy_total")
    private Double dcDischargeEnergyTotal;
    /** 电池下限电压 */
    @JsonProperty("dc_low_limit_voltage")
    private Double dcLowLimitVoltage;
    /** DCAC故障信息1 */
    @JsonProperty("dcac_fault1")
    private Double dcacFault1;
    /** DCAC故障信息2 */
    @JsonProperty("dcac_fault2")
    private Double dcacFault2;
    /** DCAC故障信息3 */
    @JsonProperty("dcac_fault3")
    private Double dcacFault3;
    /** DCAC故障信息4 */
    @JsonProperty("dcac_fault4")
    private Double dcacFault4;
    /** DCAC故障信息5 */
    @JsonProperty("dcac_fault5")
    private Double dcacFault5;
    /** DCAC 故障状态 */
    @JsonProperty("dcac_fault_state")
    private Double dcacFaultState;
    /** DCAC 启停状态 */
    @JsonProperty("dcac_work_state")
    private Double dcacWorkState;
    /** 总直流支路: 故障状态 */
    @JsonProperty("dcdc_fault_state")
    private Double dispatchMode;
    /** EMS序列号 */
    @JsonProperty("ems_sn")
    private String emsSn;
    /** 电池浮充电压 */
    @JsonProperty("float_charge_voltage")
    private Double floatChargeVoltage;
    /** 交流频率 */
    @JsonProperty("freq")
    private Double freq;
    /** 并离网模式 */
    @JsonProperty("grid_mode")
    private Double gridMode;
    /** A相交流电流 */
    private Double ia;
    /** B相交流电流 */
    private Double ib;
    /** C相交流电流 */
    private Double ic;
    /** 总直流支路: 直流电流 */
    private Double idc;
    /** 直流电流设置 */
    @JsonProperty("idc_set")
    private Double idcSet;
    /** 总直流支路: 光伏发电电流 */
    private Double ipv;
    /** 最大充电电流 */
    @JsonProperty("max_charge_current")
    private Double maxChargeCurrent;
    /** 最大放电电流 */
    @JsonProperty("max_discharge_current")
    private Double maxDischargeCurrent;
    /** 模块温度 */
    @JsonProperty("module_temp")
    private Double moduleTemp;
    /** 总有功功率 */
    private Double pac;
    /** A相交流有功功率 */
    @JsonProperty("pac_a")
    private Double pacA;
    /** B相交流有功功率 */
    @JsonProperty("pac_b")
    private Double pacB;
    /** C相交流有功功率 */
    @JsonProperty("pac_c")
    private Double pacC;
    /** 有功功率设置 */
    @JsonProperty("pac_set")
    private Double pacSet;
    /** 总视在功率 */
    @JsonProperty("papp")
    private Double papp;
    /** A相交流视在功率 */
    @JsonProperty("papp_a")
    private Double pappA;
    /** B相交流视在功率 */
    @JsonProperty("papp_b")
    private Double pappB;
    /** C相交流视在功率 */
    @JsonProperty("papp_c")
    private Double pappC;
    /** 总直流支路: 直流功率 */
    @JsonProperty("pdc")
    private Double pdc;
    /** 直流功率设置 */
    @JsonProperty("pdc_set")
    private Double pdcSet;
    /** 总交流功率因数 */
    @JsonProperty("pf")
    private Double pf;
    /** A相交流功率因数 */
    @JsonProperty("pf_a")
    private Double pfA;
    /** B相交流功率因数 */
    @JsonProperty("pf_b")
    private Double pfB;
    /** C相交流功率因数 */
    @JsonProperty("pf_c")
    private Double pfC;
    /** 功率因数设置 */
    @JsonProperty("pf_set")
    private Double pfSet;
    /** 总直流支路: 光伏发电功率 */
    @JsonProperty("ppv")
    private Double ppv;
    /** 总无功功率 */
    @JsonProperty("preac")
    private Double preac;
    /** A相交流无功功率 */
    @JsonProperty("preac_a")
    private Double preacA;
    /** B相交流无功功率 */
    @JsonProperty("preac_b")
    private Double preacB;
    /** C相交流无功功率 */
    @JsonProperty("preac_c")
    private Double preacC;
    /** 无功功率设置 */
    @JsonProperty("preac_set")
    private Double preacSet;
    /** 总直流支路: 光伏侧总发电电量 */
    @JsonProperty("pv_gen_energy_total")
    private Double pvGenEnergyTotal;
    /** 安规 */
    @JsonProperty("safety")
    private Double safety;
    /** 启动方式 */
    @JsonProperty("star_up_mode")
    private Double starUpMode;
    /** 子类型 */
    @JsonProperty("subtype")
    private String subtype;
    /** 类型 */
    @JsonProperty("type")
    private String type;
    /** AB交流线电压 */
    @JsonProperty("uab")
    private Double uab;
    /** BC交流线电压 */
    @JsonProperty("ubc")
    private Double ubc;
    /** CA交流线电压 */
    @JsonProperty("uca")
    private Double uca;
    /** 总直流支路: 直流电压 */
    @JsonProperty("vdc")
    private Double vdc;
    /** 总直流支路: 光伏发电电压 */
    @JsonProperty("vpv")
    private Double vpv;


}
